from PySide6.QtWidgets import QApplication, QWidget, QMenu
from PySide6.QtCore import Qt,QPoint
import sys

class MyWidget(QWidget):
    def __init__(self):
        super().__init__()

        # 设置文本编辑的上下文菜单策略 为 自定义上下文菜单
        self.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu)

        self.setEventBind(self)

    def setEventBind(self):
        """设置事件绑定
        """
        # 自定义上下文菜单请求信号 连接 自定义上下文菜单 槽函数
        self.customContextMenuRequested.connect(self.showCustomContentMenu)
        
    def showCustomContentMenu(self, pos:QPoint):
        """显示自定义上下文菜单

        :param pos: customContextMenuRequested 传出的 QPoint 位置
        """
        menu = QMenu(self)
        menu.addAction("123")
        menu.addAction("321")
        menu.exec(pos)
    
if __name__ == "__main__":
   app = QApplication(sys.argv)
   window = MyWidget()
   window.show()
   app.exec()